import java.util.ArrayDeque;
import java.util.Scanner;

/**
 * 
 * 找最小数
 * 
 * 题目描述

给一个正整数NUM1，计算出新正整数NUM2，NUM2为NUM1中移除N位数字后的结果，需要使得NUM2的值最小。

输入描述
1.输入的第一行为一个字符串，字符串由0-9字符组成，记录正整数NUM1，NUM1长度小于32。
2.输入的第二行为需要移除的数字的个数，小于NUM1长度。

输出描述
输出一个数字字符串，记录最小值NUM2。

用例
输入	2615371
4
输出	131
说明	无
 * 
 */
/*
 * 
 * 题目解析
本题和算法 - 移掉 K 位数字_伏城之外的博客-CSDN博客

相同，但是本题题目描述和用例不清晰，建议看上面leetcode算法题后再来写本题

 */
public class 找最小数 {
    
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
 
        String num = sc.next();
        int n = sc.nextInt();
 
        System.out.println(solution(num, n));

    }

    public static String solution(String num, int k) {
        if (k >= num.length()) {
            return "0";
        }
 
        ArrayDeque<Character> stack = new ArrayDeque<>();
        int remain = num.length() - k;
 
        for (int i = 0; i < num.length(); i++) {
            char c = num.charAt(i);
 
            while (!stack.isEmpty() && k > 0 && stack.getLast() > c) {
                stack.removeLast();
                k--;
            }
 
            stack.addLast(c);
        }
 
        while (stack.size() > remain) {
            stack.removeLast();
        }
 
        while (stack.getFirst() == '0' && stack.size() > 1) {
            stack.removeFirst();
        }
 
        StringBuilder sb = new StringBuilder();
        for (Character c : stack) {
            sb.append(c);
        }
 
        return sb.toString();
    }
}
